Data systems are currently in wide use. Data systems are often developed by a developer and used by an end user. The developer often defines the data types in the data system and the user simply uses them. However, an end user may also wish to define a new or different data type. This has presented some difficulties.
One example of a data system is a business data system. A business data system can include, for example, an enterprise resource planning (ERP) system, a customer resource management (CRM) system, a line-of-business (LOB) system, or other systems. In such business data systems, the developer often configures the business data system by defining data types and authoring code against the defined data types in the compiled code. This results in strongly typed data entities, defined as classes, with full object orientation and tooling support. For instance, the type system of the compiler will catch data type errors at compile time, so that they do not occur at runtime. In this type of system, however, if an end user wishes to extend a data type or create a new data type, the user often needs to have the developer perform this work and then recompile the code. This can be a great deal more costly and time consuming than simply allowing an end user to make these changes.
Some systems currently allow end users to define data types. However, these are weakly typed data types in that they are often simply referenced using a string. Errors in this kind of system are not even detected at compile time. Therefore, this can result in runtime errors. That is, the developers had to write data manipulation (DML) statements to create the types and the code can only reference these weakly typed entities by name. Thus, the compiler is unable to detect any type mistakes.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.